Index: docs/CHANGELOG.html
===================================================================
--- docs/CHANGELOG.html (revision 9710)
+++ docs/CHANGELOG.html (working copy)
@@ -141,6 +141,7 @@
[Fix] Check if template file is empty before trying to read from it. (Bug #47345 - Patch by bantu)
[Fix] Correct descriptions of the permissions to use BBCode, smilies, images and flash to be more relevant. (Bug #36065 - Patch by rxu)
[Fix] Fix style issues in print mode. (Bug #26375 - Patch by leviatan21)
+ [Fix] Correctly display links in memberlist. (Bug #26525 - Patch by leviatan21)
[Change] Change the data format of the default file ACM to be more secure from tampering and have better performance.
[Change] Add index on log_time to the log table to prevent slowdown on boards with many log entries. (Bug #44665 - Patch by bantu)
[Change] Template engine now permits to a limited extent variable includes.
Index: includes/functions.php
===================================================================
--- includes/functions.php (revision 9710)
+++ includes/functions.php (working copy)
@@ -2265,7 +2265,11 @@
{
// All kind of links
$url = preg_replace('/(\?)?(&|&)?sid=[a-z0-9]+/', '', $url);
- // if the sid was the first param, make the old second as first ones
+ }
+
+ // Check if the first param is correct
+ if (strpos($url, '?') == false)
+ {
$url = preg_replace("/$phpEx(&|&)+?/", "$phpEx?", $url);
}
Index: memberlist.php
===================================================================
--- memberlist.php (revision 9710)
+++ memberlist.php (working copy)
@@ -1215,16 +1215,15 @@
$total_users = $config['num_users'];
}
- $s_char_options = '';
- for ($i = 97; $i < 123; $i++)
+ // Build a relevant pagination_url
+ $params = $sort_params = array();
+
+ if ($mode)
{
- $s_char_options .= '';
+ $params[] = "mode=$mode";
+ $sort_params[] = "mode=$mode";
}
- $s_char_options .= '';
- // Build a relevant pagination_url
- $params = $sort_params = array();
-
// We do not use request_var() here directly to save some calls (not all variables are set)
$check_params = array(
'g' => array('g', 0),
@@ -1261,26 +1260,27 @@
$param = call_user_func_array('request_var', $call);
$param = urlencode($key) . '=' . ((is_string($param)) ? urlencode($param) : $param);
$params[] = $param;
-
- if ($key != 'sk' && $key != 'sd')
- {
- $sort_params[] = $param;
- }
+ $sort_params[] = $param;
}
$u_hide_find_member = append_sid("{$phpbb_root_path}memberlist.$phpEx", "start=$start" . (!empty($params) ? '&' . implode('&', $params) : ''));
- if ($mode)
+ $pagination_url = (sizeof($params) > 0) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", implode('&', $params)) : append_sid("{$phpbb_root_path}memberlist.$phpEx", false, false);
+ $sort_url = (sizeof($sort_params) > 0) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", implode('&', $sort_params)) : append_sid("{$phpbb_root_path}memberlist.$phpEx", false, false);
+ $list_url = preg_replace('/(\?)?(&|&)?first_char=[a-z]/', '', $sort_url);
+
+ unset($search_params, $sort_params);
+
+ $s_char_list = '' . $user->lang['ALL'] . '';
+ $s_char_options = '';
+ for ($i = 97; $i < 123; $i++)
{
- $params[] = "mode=$mode";
+ $s_char_options .= '';
+ $s_char_list .= ' ' . strtoupper(chr($i)) . '';
}
- $sort_params[] = "mode=$mode";
+ $s_char_options .= '';
+ $s_char_list .= ' #';
- $pagination_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", implode('&', $params));
- $sort_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", implode('&', $sort_params));
-
- unset($search_params, $sort_params);
-
// Some search user specific data
if ($mode == 'searchuser' && ($config['load_search'] || $auth->acl_get('a_')))
{
@@ -1505,20 +1505,20 @@
'U_FIND_MEMBER' => ($config['load_search'] || $auth->acl_get('a_')) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser' . (($start) ? "&start=$start" : '') . (!empty($params) ? '&' . implode('&', $params) : '')) : '',
'U_HIDE_FIND_MEMBER' => ($mode == 'searchuser') ? $u_hide_find_member : '',
- 'U_SORT_USERNAME' => $sort_url . '&sk=a&sd=' . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_FROM' => $sort_url . '&sk=b&sd=' . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_JOINED' => $sort_url . '&sk=c&sd=' . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_POSTS' => $sort_url . '&sk=d&sd=' . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_EMAIL' => $sort_url . '&sk=e&sd=' . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_WEBSITE' => $sort_url . '&sk=f&sd=' . (($sort_key == 'f' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_LOCATION' => $sort_url . '&sk=b&sd=' . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_ICQ' => $sort_url . '&sk=g&sd=' . (($sort_key == 'g' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_AIM' => $sort_url . '&sk=h&sd=' . (($sort_key == 'h' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_MSN' => $sort_url . '&sk=i&sd=' . (($sort_key == 'i' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_YIM' => $sort_url . '&sk=j&sd=' . (($sort_key == 'j' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_SORT_ACTIVE' => ($auth->acl_get('u_viewonline')) ? $sort_url . '&sk=l&sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a') : '',
- 'U_SORT_RANK' => $sort_url . '&sk=m&sd=' . (($sort_key == 'm' && $sort_dir == 'a') ? 'd' : 'a'),
- 'U_LIST_CHAR' => $sort_url . '&sk=a&sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a'),
+ 'U_SORT_USERNAME' => reapply_sid($sort_url . '&sk=a&sd=' . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_FROM' => reapply_sid($sort_url . '&sk=b&sd=' . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_JOINED' => reapply_sid($sort_url . '&sk=c&sd=' . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_POSTS' => reapply_sid($sort_url . '&sk=d&sd=' . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_EMAIL' => reapply_sid($sort_url . '&sk=e&sd=' . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_WEBSITE' => reapply_sid($sort_url . '&sk=f&sd=' . (($sort_key == 'f' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_LOCATION' => reapply_sid($sort_url . '&sk=b&sd=' . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_ICQ' => reapply_sid($sort_url . '&sk=g&sd=' . (($sort_key == 'g' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_AIM' => reapply_sid($sort_url . '&sk=h&sd=' . (($sort_key == 'h' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_MSN' => reapply_sid($sort_url . '&sk=i&sd=' . (($sort_key == 'i' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_YIM' => reapply_sid($sort_url . '&sk=j&sd=' . (($sort_key == 'j' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_SORT_ACTIVE' => ($auth->acl_get('u_viewonline')) ? reapply_sid($sort_url . '&sk=l&sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a')) : '',
+ 'U_SORT_RANK' => reapply_sid($sort_url . '&sk=m&sd=' . (($sort_key == 'm' && $sort_dir == 'a') ? 'd' : 'a')),
+ 'U_LIST_CHAR' => reapply_sid($sort_url . '&sk=a&sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a')),
'S_SHOW_GROUP' => ($mode == 'group') ? true : false,
'S_VIEWONLINE' => $auth->acl_get('u_viewonline'),
@@ -1526,6 +1526,7 @@
'S_MODE_SELECT' => $s_sort_key,
'S_ORDER_SELECT' => $s_sort_dir,
'S_CHAR_OPTIONS' => $s_char_options,
+ 'S_CHAR_LIST' => $s_char_list,
'S_MODE_ACTION' => $pagination_url)
);
}
Index: styles/prosilver/template/memberlist_body.html
===================================================================
--- styles/prosilver/template/memberlist_body.html (revision 9710)
+++ styles/prosilver/template/memberlist_body.html (working copy)
@@ -32,36 +32,8 @@